package edu.qqilin.springframework.beans.factory;

import edu.qqilin.springframework.beans.BeansException;
import edu.qqilin.springframework.beans.factory.config.AutowireCapableBeanFactory;
import edu.qqilin.springframework.beans.factory.config.BeanDefinition;
import edu.qqilin.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * Description: 组合接口。
 * <p>
 * 集成了配置能力和列表能力，通常由 DefaultListableBeanFactory 实现。
 *
 * @author qqilin1213
 * @version 1.0
 * @date 2025/11/24 15:34
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;
}
